package cn.edu.jxau.service;

import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import cn.edu.jxau.controller.ServiceSupport;
import cn.edu.jxau.exception.ServiceException;
import cn.edu.jxau.util.StringUtil;

/**
 * 用户业务类
 * UserService
 * @author zclong 2017年9月9日
 */
@SuppressWarnings("serial")
public class UserService extends ServiceSupport {
    private static Logger logger = LoggerFactory.getLogger(UserService.class);
    
    private final String ERROR_MSG = "数据异常";
    private final String LOGIN_MSG = "login_msg";
    
    //构造参数，进行传参
    public UserService(String view, Map<String, Object[]> params, Map<String, Object> data) throws ServiceException {
        /**
         * view service.xml中的name和视图对应
         * params request入口的参数数组
         * data 返回给Servlet的出口参数
         */
        super(view, params, data);
        execute(view, params, data); // 执行业务
    }

    @SuppressWarnings("unused")
    private void login(Map<String, Object[]> params, Map<String, Object> data) {
        
        /**
         * 1，获取前台传过来数据
         * params : request的入口参数数组，Map集合
         * "username" : Map数组的key，通过它获取对应的值，即用户名
         * 0 : 因为是Map集合，即一个key对应的value是一个数组，所以给定数值的下标，获取对应得值，如果数组中只有一，则下标位0
         */
        
        String username = getParamStringValue(params, "username", 0);
        String password = getParamStringValue(params, "password", 0);
        
        //2，数据简单校验
        if(StringUtil.isBlank(username) || StringUtil.isBlank(password)) {
            data.put(LOGIN_MSG, ERROR_MSG);
            data.put("result", FAILED); //返回处理结果result
            return;
        }
        
        //数据库校验
        if("zclong".equals(username) && "123".equals(password)) {
         // 保存session的数据
            data.put("session_user", username);
            data.put("result", LOGIN); 
            logger.info(username + "：登录成功");
            return;
        }else {
            data.put("result", FAILED); //返回处理结果result
            return;
        }
    }
}
